package com.demo;

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

/**
 * @author wangzhanjin
 * @date 2018/6/13 10:50
 */
public class QueueProducer {

    public static void main(String[] args) throws JMSException {
        //1.创建连接工厂，不是管理端口8161，ActiveMQConnectionFactory实际是ConnectionFactory实现类
        //ConnectionFactory是java的接口
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
        //2.创建连接
        Connection connection = connectionFactory.createConnection();
        //3.启动连接
        connection.start();
        //4.获取session（会话对象）,参数1：是否启动事务；参数2，消息的确认方式
        //参数1：true，必须commit才能发送，false就是自动提交了
        //消息确认方式：AUTO_ACKNOWLEDGE=1自动提交；CLIENT_=2客户端手动确认；
        //              DUPS_OK=3自动批量；SESSION_TRANSACTED=0事务提交并确认
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //5.创建队列对象
        Queue queue = session.createQueue("test-queue");
        // Destination，被继承Queue和Topic，其中实现类为ActiveMQQueue和ActiveMQTopic
        //6.创建消息生产者对象
        MessageProducer producer = session.createProducer(queue);
        //7.创建消息对象（文本消息）
        TextMessage textMessage = session.createTextMessage("欢迎你，大帅哥，我给消息队列的！");
        //8.发送消息（谁来发送，消息生产者）
        producer.send(textMessage);
        //9.关闭资源
        producer.close();
        session.close();
        connection.close();
    }
}
